package com.wei.tang;

import org.kymjs.kjframe.utils.StringUtils;

import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.wei.tang.base.BaseApplication;
import com.wei.tang.bean.UserBean;
import com.wei.tang.util.Tlog;

public class AppContext extends BaseApplication {

	public static AppContext instance;
	/**
	 * 当前用户信息
	 */
	public static UserBean USERBEAN;

	@Override
	public void onCreate() {
		super.onCreate();
		instance = this;
		init();
	}

	private void init() {
		initImageLoader();
	}

	/**
	 * 初始化网络图片缓存库
	 */
	private void initImageLoader() {
		// 网络图片例子,结合常用的图片缓存库UIL,你可以根据自己需求自己换其他网络图片库
		DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
				.showImageForEmptyUri(R.drawable.ic_default_adimage).cacheInMemory(true).cacheOnDisk(true).build();
		ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
				.defaultDisplayImageOptions(defaultOptions).threadPriority(Thread.NORM_PRIORITY - 2)
				.denyCacheImageMultipleSizesInMemory().diskCacheFileNameGenerator(new Md5FileNameGenerator())
				.tasksProcessingOrder(QueueProcessingType.LIFO).build();
		ImageLoader.getInstance().init(config);
	}

	/**
	 * 获取当前的上线文
	 * 
	 * @return
	 */
	public static AppContext getInstance() {
		return instance;
	}

	/**
	 * 获取用户当前信息
	 */
	public UserBean getUserBean() {
		return USERBEAN;
	}

	/**
	 * 用户登录
	 */
	public void userLogin(UserBean _userBan) {
		Tlog.i(_userBan.toString());
		USERBEAN = _userBan;
		if (USERBEAN != null && !StringUtils.isEmpty(USERBEAN.getUser_session())) {
			AppConest.ISLOGIN = true;
			if (_userBan.getUser_status().equals("s")) {
				AppConest.ISSTUDENT = true;
			} else {
				AppConest.ISSTUDENT = false;
			}
			AppConest.SESSIONID = _userBan.getUser_session();
		} else {
			AppConest.ISLOGIN = false;
			AppConest.SESSIONID = "";
		}
	}

	// /**
	// * 用户注册
	// */
	// public void userRegister(UserBean _userBan) {
	// this.userBean = _userBan;
	// if (this.userBean == null &&
	// StringUtils.isEmpty(this.userBean.getUser_session())) {
	// AppConest.ISLOGIN = true;
	// } else {
	// AppConest.ISLOGIN = false;
	// }
	// }

	/**
	 * 用户退出
	 */
	public void userLogout() {
		USERBEAN = null;
		AppConest.ISLOGIN = false;
		AppContext.getInstance().setProperty("user.session", "");
	}

	/**
	 * 夜间模式
	 */
	public static boolean getNightModeSwitch() {
		return getPreferences().getBoolean(AppConfig.KEY_NIGHT_MODE_SWITCH, false);
	}

	/**
	 * 设置夜间模式
	 */
	public static void setNightModeSwitch(boolean on) {
		set(AppConfig.KEY_NIGHT_MODE_SWITCH, on);
	}

	/**
	 * 获取存储在本地的数据
	 */
	public String getProperty(String key) {
		String res = AppConfig.getAppConfig(this).get(key);
		return res;
	}

	/**
	 * 将数据存在本地
	 */
	public void setProperty(String key, String value) {
		AppConfig.getAppConfig(this).set(key, value);
	}

}
